// Package model
// @Link  https://github.com/bufanyun/hotgo
// @Copyright  Copyright (c) 2023 HotGo CLI
// @Author  Ms <133814250@qq.com>
// @License  https://github.com/bufanyun/hotgo/blob/master/LICENSE
package model

import (
	"github.com/gogf/gf/v2/container/gmap"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gtime"
)

// Context 请求上下文结构
type Context struct {
	User     *Identity // 上下文用户信息
	Response *Response // 请求响应
	Data     g.Map     // 自定kv变量 业务模块根据需要设置，不固定
}

// Identity 通用身份模型
type Identity struct {
	Id          int64          `json:"id"              description:"用户ID"`
	Username    string         `json:"username"        description:"用户名"`
	UserCode    string         `json:"userCode"        description:"用户编码"`
	IsAdmin     bool           `json:"isAdmin"         description:"是否管理员"`
	RealName    string         `json:"realName"        description:"姓名"`
	Email       string         `json:"email"           description:"邮箱"`
	Mobile      string         `json:"mobile"          description:"手机号码"`
	LoginAt     *gtime.Time    `json:"loginAt"         description:"登录时间"`
	ExtendOne   string         `json:"extendOne"       description:"扩展字段1"`
	ExtendTwo   string         `json:"extendTwo"       description:"扩展字段2"`
	ExtendThree string         `json:"extendThree"     description:"扩展字段3"`
	ExtendFour  string         `json:"extendFour"      description:"扩展字段4"`
	ExtendMap   gmap.StrAnyMap `json:"extendMap"       description:"扩展字段4"`
}
